4. Arguments for your loader
If you want the loader to take an argument, all you have to do is to add a queriesArg
:
import { ConsumerProps } from "@ryfylke-react/rtk-query-loader";
// This means that any component that has props that extend this
// type can consume the loader using `withLoader`
type UserRouteLoaderProps = ConsumerProps<{
userId: string;
}>;
export const userRouteLoader = baseLoader.extend({
queriesArg: (props: UserRouteLoaderProps) => props.userId,
// type is now inferred from queriesArg return
useQueries: (userId) => {
const user = useGetUserQuery(userId);
const posts = useGetPostsByUser(userId);
return {
queries: {
user,
posts,
},
};
},
});